import re
import requests


"""
  get 请求中常用参数
  url、params: 参数、 verify:  是否进行安全认证 headers: 请求头   

"""

# 示例1 发起get 请求
# r = requests.get('https://httpbin.org/get')
# print(r.text)

# 示例2 发起get 请求带上请求参数
# data = {
#     'name': 'germey',
#     'age': 25
# }
# r = requests.get('https://httpbin.org/get', params=data)
# print(r.text)


# 示例3 响应数据解析成json格式
"""
    网页的返回类型实际上是 str 类型，但是它很特殊，是 JSON 格式的。所以，如果想直接解析返回结果，得到一个 JSON 格式的数据的话，可以直接调用 json 方法
    注意:  如果返回结果不是 JSON 格式，便会出现解析错误，抛出 json.decoder.JSONDecodeError 异常。
"""
# data = {
#     'name': 'germey',
#     'age': 25
# }
# r = requests.get('https://httpbin.org/get', params=data)
# print(r.json())



# 示例4 抓取网页h2 小标题内容
# r = requests.get('https://ssr1.scrape.center/')
# pattern = re.compile('<h2.*?>(.*?)</h2>', re.S)  # 标志让点号（.）可以匹配换行符，否则默认不跨行。
# titles = re.findall(pattern, r.text) # ['霸王别姬 - Farewell My Concubine', '这个杀手不太冷 - Léon', '肖申克的救赎 - The Shawshank Redemption', '泰坦尼克号 - Titanic', '罗马假日 - Roman Holiday', '唐伯虎点秋香 - Flirting Scholar', '乱世佳人 - Gone with the Wind', '喜剧之王 - The King of Comedy', '楚门的世界 - The Truman Show', '狮子王 - The Lion King']
# print(titles)



# 示例5 抓取二进制数据-图片、视频？

# 这个站点安全证书过期了，所以去除安全认证，传参-verify=False
# r = requests.get('https://scrape.center/favicon.ico',verify=False)
# print(r.text) # 输出二进制内容出现乱码
# print(r.content) # 二进制内容
#
# with open('../files/favicon.ico','wb') as f:
#     f.write(r.content)


# 示例6 添加headers
"""
    要添加 Headers 信息，比如我们这里想添加一个 User-Agent 字段，让服务器以为是正常浏览器请求
"""

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
r = requests.get('https://ssr1.scrape.center/', headers=headers)
print(r.text)






